package com.arpa.wms.domain.vo;

import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 仓库计费合同DTO
 * </p>
 *
 * @author LEO
 * @since 2020-11-17
 */
@Data
@ApiModel(value="ContractVO对象", description="仓库计费合同")
public class ContractVO implements Serializable {


    @ApiModelProperty(value = "合同标识")
    private String code;
    @ApiModelProperty(value = "合同号")
    private String contractNo;

    @ApiModelProperty(value = "仓库标识")
    private String warehouseCode;

    @ApiModelProperty(value = "仓库名称")
    private String warehouseName;

    @ApiModelProperty(value = "入驻商")
    private String shipmentCode;

    @ApiModelProperty(value = "货主名称")
    private String shipmentName;

    @ApiModelProperty(value = "所属机构")
    private String groupCode;

    @ApiModelProperty(value = "生效日期")
    private LocalDate gmtEffective;

    @ApiModelProperty(value = "失效日期")
    private LocalDate gmtIneffective;

    @ApiModelProperty(value = "开始计费日期")
    private LocalDate gmtBillingBegin;

    @ApiModelProperty(value = "仓储费类型：WHOLE（包仓），SCATTERED（零散）")
    private String storageFeeType;

    @ApiModelProperty(value = "计费单位：包仓（LOCATION（库位），AREA（面积）），零仓（PIECE（件），TON（吨），LOCATION（库位））")
    private String billingUnit;

    @ApiModelProperty(value = "计费周期")
    private Integer billingCycle;

    @ApiModelProperty(value = "单价")
    private BigDecimal unitPrice;

    @ApiModelProperty(value = "数量")
    private BigDecimal quantity;

    @ApiModelProperty(value = "总金额")
    private BigDecimal amountMoney;

    @ApiModelProperty(value = "最小计费量")
    private BigDecimal minBillingVolume;

    @ApiModelProperty(value = "备注")
    private String remarks;

    @ApiModelProperty(value = "状态：0启用、1停用")
    private String status;

    @ApiModelProperty(value = "作业费")
    private List<ContractOperationCostVO> contractOperationCostList;

    @ApiModelProperty(value = "附件")
    private String attachmentUrl;
    @ApiModelProperty(value = "附件名称")
    private String attachmentName;

    @ApiModelProperty(value = "创建人")
    private String createdBy;

    @ApiModelProperty(value = "创建人")
    private String createdName;

    @ApiModelProperty(value = "创建人")
    private String modifiedBy;

    @ApiModelProperty(value = "修改人")
    private String modifiedName;

    @ApiModelProperty(value = "创建时间")
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime gmtCreated;

    @ApiModelProperty(value = "修改时间")
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime gmtModified;

    @ApiModelProperty(value = "总数")
    private Long total;
}
